Python SDK API文档

本文档将详细介绍Python SDK的API,如果您想要了解如何接入,建议您阅读Python SDK 使用指南获得安装并使用SDK的方法

最新版本为:1.1.25

更新时间为:2019-08-21


一、实例化类

Python SDK共提供三种Consumer,分别为写入本地文件的LoggerConsumer,同步阻塞上传数据的BatchConsumer,与异步非阻塞上传数据的AsyncBatchConsumer

1. LoggingConsumer:

将数据使用 logging 库输出到指定路径,并默认按天切割,建议在生产环境中使用。

class LoggingConsumer(log_directory, log_size=1024, bufferSize=8192)
    '''
        用于实时地向指定路径写本地文件的Consumer,需要搭配传输工具LogBus上传数据
        :param log_directory: 写入文件的目录
        :param log_size: 单个log文件的大小,单位是MB,默认为1024MB,即1GB   
        :param bufferSize :立即发送数据的条数,单位是条,默认8192条  
    '''

2. BatchConsumer:

逐条、同步的发送数据给接收服务器。(不建议在生产环境中使用)

如果发送数据出错,需要开发者自己进行异常处理

只建议在上传少量数据或测试数据时使用

class BatchConsumer(server_uri, appid, batch=20, timeout=30000, interval=3)
    '''
        :param server_uri: 服务器的 URL 地址.
        :param appid: appid一个token,在申请项目时会给出.
        :param batch: 最大传输数据量,单位是数据的条数,默认为20条数据
        :param timeout: 请求的超时时间,单位为毫秒,默认为30秒.
        :param interval: 推送数据的最大时间间隔,单位是秒,默认为3秒.
    '''

3. AsyncBatchConsumer:

异步、批量发送数据的 Consumer,使用独立的线程进行数据发送(不建议在生产环境中使用)。

如果(重试三次后)发送数据出错或者缓存队列已满,则发送数据会被丢弃。

当满足以下两个条件之一时进行数据发送:

  1. 数据条数大于预定义的最大值
  2. 数据发送间隔超过预定义的最大时间

只建议在上传少量数据或测试数据时使用


class AsyncBatchConsumer(server_uir, appid, interval=3, flush_size=20, queue_size=100000)
        """
        初始化 AsyncBatchConsumer。

        :param server_uri: 服务器的 URL 地址.
        :param appid: appid一个token,在申请项目时会给出.
        :param interval: 两次发送的最大间隔时间,单位秒。
        :param flush_size: 队列缓存的阈值,超过此值将立即进行发送。
        :param queue_size: 缓存队列的大小,超过queue_size的数据将会丢失。
        """

4. 获取SDK实例

class TGAnalytics(consumer)
    '''
        获取SDK实例
        :param consumer: 使用的Consumer,决定数据格式化和传输的方式.
    '''

二、数据操作:

1. 上传事件

track(self,distinct_id = None,account_id = None,event_name = None,properties = None)
    '''
        上传一个事件
        :param distinct_id(str):用户未登录状态下的访客ID
        :param account_id(str):账号ID,账号ID与访客ID必须传入一个
        :param event_name(str):事件名
        :param properties(dict):传入的事件属性
    '''

2. 设置公共属性

set_super_properties(properties)
    '''
        设置每个事件都带有的公共属性,当 track 的属性和公共属性有相同的 key 时,将采用 track 的属性
        :param properties(dict):公共属性
    '''

3. 清除公共属性

clear_super_properties()
    '''
        删除所有已设置的公共事件属性
    '''

4. 设置用户属性

user_set(distinct_id = None,account_id = None,properties = None)
    '''
        设置用户属性,如果该用户已经存在该属性,则覆盖,如果不存在则新建该属性
        :param distinct_id(str):用户未登录状态下的访客ID
        :param account_id(str):账号ID,账号ID与访客ID必须传入一个
        :param properties(dict):设置的用户属性
    '''

5. 设置单次用户属性

user_setOnce(distinct_id = None,account_id = None,properties = None)
    '''
        设置用户属性,如果该用户已经存在该属性,不进行覆盖,如果不存在则新建该属性
        :param distinct_id(str):用户未登录状态下的访客ID
        :param account_id(str):账号ID,账号ID与访客ID必须传入一个
        :param properties(dict):设置的用户属性
    '''

6. 累加用户属性

user_add(distinct_id = None,account_id = None,properties = None)
    '''
        累加用户属性,只支持数值型的属性做累加操作
        :param distinct_id(str):用户未登录状态下的访客ID
        :param account_id(str):账号ID,账号ID与访客ID必须传入一个
        :param properties(dict):设置的用户属性
    '''

7. 删除用户

user_del(distinct_id = None,account_id = None,properties = None)
    '''
        删除用户,请注意该操作可能产生不可逆的后果,请慎用
        :param distinct_id(str):用户未登录状态下的访客ID
        :param account_id(str):账号ID,账号ID与访客ID必须传入一个
        :param properties(dict):无意义,可以不设置
    '''

8. 立即上传数据

flush()
    '''
       立即提交数据到相应的接收器
    '''

9. 关闭并退出SDK

close()
    '''
       关闭并退出sdk
    '''

results matching ""

    No results matching ""